module top_module (
    input a,
    input b,
    input c,
    input d,
    output q );

    // truth table
    // a b c d q
    // 0 0 0 0 1
    // 0 0 0 1 0
    // 0 0 1 0 0
    // 0 0 1 1 1
    // 0 1 0 0 0
    // 0 1 0 1 1
    // 0 1 1 0 1
    // 0 1 1 1 0
    // 1 0 0 0 0
    // 1 0 0 1 1
    // 1 0 1 0 1
    // 1 0 1 1 0
    // 1 1 0 0 1
    // 1 1 0 1 0
    // 1 1 1 0 0
    // 1 1 1 1 1
    assign q = ~a & ~b & ~c & ~d | ~a & ~b & c & d | ~a & b & ~c & d | ~a & b & c & ~d | 
       	 	   a & b & ~c & ~d | a & b & c & d | a & ~b & ~c & d | a & ~b & c & ~d; // Fix me

endmodule
